home *** CD-ROM | disk | FTP | other *** search
/ Mac Mania 4 / MacMania 4.toast / / Internet software / Drag-n-Drop-Email-as.02 / Drag n Drop Email (text) < prev    next >
Text File  |  1996-06-02  |  3KB  |  122 lines

  1. global LF, CR, CRLF
  2.  
  3. property isitSet : false
  4. property emailHost : ""
  5. property returnAddress : ""
  6. property userName : ""
  7.  
  8. on run
  9.     
  10.     set defaultReturnaddress to {"me@wherever.com"}
  11.     
  12.     set dialogResponse to (display dialog "Enter your complete e-mail address: " default answer defaultReturnaddress)
  13.     if (button returned of dialogResponse ≠ "OK") then
  14.         return
  15.     else
  16.         set returnAddress to text returned of dialogResponse
  17.         if returnAddress = defaultReturnaddress then
  18.             return
  19.         end if
  20.     end if
  21.     
  22.     
  23.     set oldDelimiters to AppleScript's text item delimiters
  24.     set AppleScript's text item delimiters to {"@"}
  25.     set userName to first text item of returnAddress
  26.     set emailHost to "mail." & last text item of returnAddress
  27.     set AppleScript's text item delimiters to oldDelimiters
  28.     
  29.     set isitSet to true
  30. end run
  31.  
  32. on open (docList)
  33.     if not isitSet then
  34.         run
  35.     end if
  36.     
  37.     set closeAfter to false
  38.     if not (PPPopened) then
  39.         set closeAfter to true
  40.         openPPP (getPPPServer)
  41.         repeat while not (PPPopened)
  42.         end repeat
  43.     end if
  44.     
  45.     
  46.     
  47.     set LF to ASCII character (10)
  48.     set CR to return
  49.     set CRLF to CR & LF
  50.     
  51.     set sss to (tcp connect to host emailHost port 25)
  52.     
  53.     try
  54.         readresponse(sss)
  55.         repeat with aFile in docList
  56.             set aFile to contents of aFile
  57.             tcp write data "mail from: " & returnAddress & return ¬
  58.                 stream sss using ISO88591
  59.             readresponse(sss)
  60.             
  61.             set afilename to aFile as string
  62.             set oldDelimiters to AppleScript's text item delimiters
  63.             set AppleScript's text item delimiters to {":"}
  64.             set theFileName to last text item of afilename
  65.             set AppleScript's text item delimiters to oldDelimiters
  66.             set emailSubject to theFileName as text
  67.             open for access afilename
  68.             set sendToaddress to (read afilename before return)
  69.             set mailContents to (read afilename)
  70.             close access afilename
  71.             
  72.             tcp write data "rcpt to: " & sendToaddress & return ¬
  73.                 stream sss using ISO88591
  74.             readresponse(sss)
  75.             tcp write data "data" & return stream sss using ISO88591
  76.             readresponse(sss)
  77.             
  78.             tcp write data "To: " & sendToaddress & return stream sss using ISO88591
  79.             tcp write data "Subject: " & emailSubject & return stream sss using ISO88591
  80.             tcp write data mailContents & return stream sss using ISO88591
  81.             tcp write data "." & return stream sss using ISO88591
  82.             readresponse(sss)
  83.         end repeat
  84.         tcp close stream sss
  85.         if closeAfter = true then
  86.             if (PPPopened) = true then
  87.                 closePPP with hard close
  88.             end if
  89.         end if
  90.         return
  91.     on error msg number num
  92.         tcp close stream sss
  93.         display dialog "Error: " & msg & " " & num
  94.     end try
  95.     
  96.     
  97.     
  98. end open
  99.  
  100. on readresponse(sstream)
  101.     set LF to ASCII character (10)
  102.     set continuechar to "-"
  103.     set wholemessage to ""
  104.     repeat until continuechar = " "
  105.         repeat until (tcp ahead characters LF stream sstream)
  106.         end repeat
  107.         set readline to (tcp read until characters LF stream sstream using ISO88591)
  108.         set scan to (scanline(readline))
  109.         set continuechar to item 2 of scan
  110.         set wholemessage to wholemessage & " " & item 3 of scan
  111.     end repeat
  112.     set errorCode to item 1 of scan as integer
  113.     if (errorCode ≥ 400) then
  114.         display dialog "Error: " & wholemessage
  115.         error wholemessage number errorCode
  116.     end if
  117. end readresponse
  118.  
  119. on scanline(lline)
  120.     return {characters 1 through 3 of lline as string, character 4 of lline as string, ¬
  121.         characters 5 through end of lline as string}
  122. end scanline